package com.dominos.voldemortstress;

import java.util.List;
import java.util.concurrent.TimeUnit;

import voldemort.client.ClientConfig;
import voldemort.client.RoutingTier;
import voldemort.client.protocol.RequestFormatType;
import voldemort.serialization.SerializerFactory;

public interface StressClientConfigMBean {
	
	public String[] getBootstrapUrls();

	
	public int getConnectionTimeout(TimeUnit unit);

	
	public long getFailureDetectorAsyncRecoveryInterval();

	
	public long getFailureDetectorBannagePeriod();
	
	public List<String> getFailureDetectorCatastrophicErrorTypes();

	
	public String getFailureDetectorImplementation();

	
	public long getFailureDetectorRequestLengthThreshold();

	
	public int getFailureDetectorThreshold();

	
	public int getFailureDetectorThresholdCountMinimum();

	
	public long getFailureDetectorThresholdInterval();

	
	public int getMaxBootstrapRetries();

	
	public int getMaxConnectionsPerNode();

	
	public int getMaxQueuedRequests();

	
	public int getMaxThreads();

	
	public int getMaxTotalConnections();

	
	public RequestFormatType getRequestFormatType();

	
	public RoutingTier getRoutingTier();

	
	public int getRoutingTimeout(TimeUnit unit);

	
	public SerializerFactory getSerializerFactory();

	
	public int getSocketBufferSize();
	
	public boolean getSocketKeepAlive();

	
	public int getSocketTimeout(TimeUnit unit);

	
	public int getThreadIdleTime(TimeUnit unit);

	
	public boolean isJmxEnabled();

	
	public ClientConfig setBootstrapUrls(List<String> bootstrapUrls);
	
	public ClientConfig setBootstrapUrls(String... bootstrapUrls);

	
	public ClientConfig setConnectionTimeout(int connectionTimeout,
			TimeUnit unit);
	
	public ClientConfig setEnableJmx(boolean enableJmx);

	
	public ClientConfig setFailureDetectorAsyncRecoveryInterval(
			long failureDetectorAsyncRecoveryInterval);
	
	public ClientConfig setFailureDetectorBannagePeriod(
			long failureDetectorBannagePeriod);

	
	public ClientConfig setFailureDetectorCatastrophicErrorTypes(
			List<String> failureDetectorCatastrophicErrorTypes);

	
	public ClientConfig setFailureDetectorImplementation(
			String failureDetectorImplementation);

	
	public ClientConfig setFailureDetectorRequestLengthThreshold(
			long failureDetectorRequestLengthThreshold);
	
	public ClientConfig setFailureDetectorThreshold(int failureDetectorThreshold);

	
	public ClientConfig setFailureDetectorThresholdCountMinimum(
			int failureDetectorThresholdCountMinimum);
	
	public ClientConfig setFailureDetectorThresholdInterval(
			long failureDetectorThresholdInterval);
	
	public ClientConfig setMaxBootstrapRetries(int maxBootstrapRetries);
	
	public ClientConfig setMaxConnectionsPerNode(int maxConnectionsPerNode);

	
	public ClientConfig setMaxQueuedRequests(int maxQueuedRequests);

	
	public ClientConfig setMaxThreads(int maxThreads);
	
	public ClientConfig setMaxTotalConnections(int maxTotalConnections);

	
	public ClientConfig setRequestFormatType(RequestFormatType requestFormatType);

	
	public ClientConfig setRoutingTier(RoutingTier routingTier);

	
	public ClientConfig setRoutingTimeout(int routingTimeout, TimeUnit unit);

	
	public ClientConfig setSerializerFactory(SerializerFactory serializerFactory);

	
	public ClientConfig setSocketBufferSize(int socketBufferSize);

	
	public ClientConfig setSocketKeepAlive(boolean socketKeepAlive);

	
	public ClientConfig setSocketTimeout(int socketTimeout, TimeUnit unit);

	
	public ClientConfig setThreadIdleTime(long threadIdleTime, TimeUnit unit);


}
